package com.tanhua.commons.exception;


import com.tanhua.commons.vo.ErrorResult;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.HashMap;
import java.util.Map;

/**
 * 全局异常处理的第二种方式：
 *  通过@ControllerAdvice和@ExceptionHandler
 *  全局异常处理
 *      1、在类上配置@ControllerAdvice
 *      2、定义一个java方法（和控制器方法类似）
 *  目标：
 *     1、错误页面
 *     2、错误信息
 */
@ControllerAdvice
public class ExceptionAdvice {

    /**
     *  @ExceptionHandler :
     *      value : 指定当前异常处理器处理的异常类型
     */
    @ExceptionHandler(value=Exception.class)
    @ResponseBody
    public ResponseEntity<Object> handlerException(Exception e) {
        e.printStackTrace();
        return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(ErrorResult.error());
    }
}
